// index.js
// 获取应用实例
import request from '../../utils/request.js';
//好奇怪，为什么这里的路径要写的这么完整，为什么没不能用'/utils/request.js'来代替呢。///。。

const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    bannerList:[],
    recommendList:[],
    topList:[]
  },
  onLoad: async function (options) {
    // 轮播图接口
    let bannerListData=await request('/banner',{type:2})
    this.setData({
      bannerList:bannerListData.banners
    })


    // 推荐歌单接口
    let recommendListData = await request('/personalized',{limit:10})
    this.setData({
      recommendList:recommendListData.result
    })
    
    //排行榜接口
    //把修改数据的方法放在while外部的话需要等待五次请求全结束才会显现出来
    //所以就改进为放在循环体里，多让他修改几次。好想也不是那么完美的解决方案
    let index=0;
    let resultArr=[];
    while(index<5){
    let topListData = await request('/top/list',{idx:index++});
    let topListItem={name:topListData.playlist.name,tracks:topListData.playlist.tracks.slice(0,3)}
    //用slice把原数组截取部分到新数组里，（0，3）是因为左闭右开区间
    resultArr.push(topListItem);
    this.setData({
      topList:resultArr
    })
  }
 
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})